home *** CD-ROM | disk | FTP | other *** search
Emacs Compiled Lisp | 1998-05-21 | 6.6 KB |
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: Emacs Compiled Lisp
(other/emacsCompiledLisp).
This format is not currently supported by dexvert.
Confidence | Program | Detection | Match Type | Support
|
---|
1%
| dexvert
| Emacs Compiled Lisp (other/emacsCompiledLisp)
| magic
| Unsupported |
100%
| file
| Emacs/XEmacs v20 byte-compiled Lisp data
| default
| |
99%
| file
| data
| default
| |
100%
| TrID
| Emacs/XEmacs byte-compiled Lisp (generic)
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 45 4c 43 14 00 00 00 | 0a 3b 3b 3b 20 63 6f 6d |;ELC....|.;;; com|
|00000010| 70 69 6c 65 64 20 62 79 | 20 6a 75 73 74 69 6e 62 |piled by| justinb|
|00000020| 40 65 62 6f 6e 79 2e 63 | 72 61 79 2e 63 6f 6d 20 |@ebony.c|ray.com |
|00000030| 6f 6e 20 4d 6f 6e 20 4d | 61 72 20 20 39 20 31 32 |on Mon M|ar 9 12|
|00000040| 3a 35 33 3a 34 37 20 31 | 39 39 38 0a 3b 3b 3b 20 |:53:47 1|998.;;; |
|00000050| 66 72 6f 6d 20 66 69 6c | 65 20 2f 68 6f 6d 65 2f |from fil|e /home/|
|00000060| 61 73 70 65 6e 30 37 2f | 6a 75 73 74 69 6e 62 2f |aspen07/|justinb/|
|00000070| 72 6f 6f 74 73 2f 66 72 | 65 65 77 61 72 65 2f 78 |roots/fr|eeware/x|
|00000080| 65 6d 61 63 73 2f 32 30 | 2e 33 2f 78 65 6d 61 63 |emacs/20|.3/xemac|
|00000090| 73 2d 32 30 2e 33 2f 6c | 69 73 70 2f 70 63 6c 2d |s-20.3/l|isp/pcl-|
|000000a0| 63 76 73 2f 64 6c 6c 2e | 65 6c 0a 3b 3b 3b 20 65 |cvs/dll.|el.;;; e|
|000000b0| 6d 61 63 73 20 76 65 72 | 73 69 6f 6e 20 32 30 2e |macs ver|sion 20.|
|000000c0| 34 20 22 45 6d 65 72 61 | 6c 64 22 20 58 45 6d 61 |4 "Emera|ld" XEma|
|000000d0| 63 73 20 20 4c 75 63 69 | 64 2e 0a 3b 3b 3b 20 62 |cs Luci|d..;;; b|
|000000e0| 79 74 65 63 6f 6d 70 20 | 76 65 72 73 69 6f 6e 20 |ytecomp |version |
|000000f0| 32 2e 32 35 20 58 45 6d | 61 63 73 3b 20 32 32 2d |2.25 XEm|acs; 22-|
|00000100| 4d 61 72 2d 39 36 2e 0a | 3b 3b 3b 20 6f 70 74 69 |Mar-96..|;;; opti|
|00000110| 6d 69 7a 61 74 69 6f 6e | 20 69 73 20 6f 6e 2e 0a |mization| is on..|
|00000120| 3b 3b 3b 20 74 68 69 73 | 20 66 69 6c 65 20 75 73 |;;; this| file us|
|00000130| 65 73 20 6f 70 63 6f 64 | 65 73 20 77 68 69 63 68 |es opcod|es which|
|00000140| 20 64 6f 20 6e 6f 74 20 | 65 78 69 73 74 20 69 6e | do not |exist in|
|00000150| 20 45 6d 61 63 73 20 31 | 39 2e 0a 0a 28 69 66 20 | Emacs 1|9...(if |
|00000160| 28 61 6e 64 20 28 62 6f | 75 6e 64 70 20 27 65 6d |(and (bo|undp 'em|
|00000170| 61 63 73 2d 76 65 72 73 | 69 6f 6e 29 0a 09 20 28 |acs-vers|ion).. (|
|00000180| 6f 72 20 28 61 6e 64 20 | 28 62 6f 75 6e 64 70 20 |or (and |(boundp |
|00000190| 27 65 70 6f 63 68 3a 3a | 76 65 72 73 69 6f 6e 29 |'epoch::|version)|
|000001a0| 20 65 70 6f 63 68 3a 3a | 76 65 72 73 69 6f 6e 29 | epoch::|version)|
|000001b0| 0a 09 20 20 20 20 20 28 | 73 74 72 69 6e 67 2d 6c |.. (|string-l|
|000001c0| 65 73 73 70 20 65 6d 61 | 63 73 2d 76 65 72 73 69 |essp ema|cs-versi|
|000001d0| 6f 6e 20 22 32 30 22 29 | 29 29 0a 20 20 20 20 28 |on "20")|)). (|
|000001e0| 65 72 72 6f 72 20 22 60 | 64 6c 6c 2e 65 6c 27 20 |error "`|dll.el' |
|000001f0| 77 61 73 20 63 6f 6d 70 | 69 6c 65 64 20 66 6f 72 |was comp|iled for|
|00000200| 20 45 6d 61 63 73 20 32 | 30 22 29 29 0a 0a 28 6f | Emacs 2|0"))..(o|
|00000210| 72 20 28 62 6f 75 6e 64 | 70 20 27 63 75 72 72 65 |r (bound|p 'curre|
|00000220| 6e 74 2d 6c 6f 61 64 2d | 6c 69 73 74 29 20 28 73 |nt-load-|list) (s|
|00000230| 65 74 71 20 63 75 72 72 | 65 6e 74 2d 6c 6f 61 64 |etq curr|ent-load|
|00000240| 2d 6c 69 73 74 20 6e 69 | 6c 29 29 0a 0a 0a 28 62 |-list ni|l))...(b|
|00000250| 79 74 65 2d 63 6f 64 65 | 20 22 c0 c1 21 88 c2 c3 |yte-code| "..!...|
|00000260| 21 87 22 20 5b 72 65 71 | 75 69 72 65 20 65 6c 69 |!." [req|uire eli|
|00000270| 62 2d 6e 6f 64 65 20 70 | 72 6f 76 69 64 65 20 64 |b-node p|rovide d|
|00000280| 6c 6c 5d 20 32 29 0a 28 | 64 65 66 61 6c 69 61 73 |ll] 2).(|defalias|
|00000290| 20 27 64 6c 6c 2d 67 65 | 74 2d 64 75 6d 6d 79 2d | 'dll-ge|t-dummy-|
|000002a0| 6e 6f 64 65 20 23 5b 28 | 64 6c 6c 29 20 22 08 41 |node #[(|dll) ".A|
|000002b0| 87 22 20 5b 64 6c 6c 5d | 20 31 5d 29 0a 28 64 65 |." [dll]| 1]).(de|
|000002c0| 66 61 6c 69 61 73 20 27 | 64 6c 6c 2d 6c 69 73 74 |falias '|dll-list|
|000002d0| 2d 6e 6f 64 65 73 20 23 | 5b 28 64 6c 6c 29 20 22 |-nodes #|[(dll) "|
|000002e0| c0 19 c2 0b 21 89 1c c5 | 48 89 1e 06 0c 61 ac 8e |....!...|H....a..|
|000002f0| 0e 06 09 42 11 0e 06 c5 | 48 89 16 06 aa 6e 09 2b |...B....|H....n.+|
|00000300| 87 22 20 5b 6e 69 6c 20 | 72 65 73 75 6c 74 20 64 |." [nil |result d|
|00000310| 6c 6c 2d 67 65 74 2d 64 | 75 6d 6d 79 2d 6e 6f 64 |ll-get-d|ummy-nod|
|00000320| 65 20 64 6c 6c 20 64 75 | 6d 6d 79 20 30 20 6e 6f |e dll du|mmy 0 no|
|00000330| 64 65 5d 20 33 5d 29 0a | 28 64 65 66 61 6c 69 61 |de] 3]).|(defalia|
|00000340| 73 20 27 64 6c 6c 2d 73 | 65 74 2d 66 72 6f 6d 2d |s 'dll-s|et-from-|
|00000350| 6e 6f 64 65 2d 6c 69 73 | 74 20 23 5b 28 64 6c 6c |node-lis|t #[(dll|
|00000360| 20 6c 69 73 74 29 20 22 | c0 09 21 88 c2 09 21 89 | list) "|..!...!.|
|00000370| 1b 1c 0d ab 95 0d 40 c6 | 0c 49 88 0c c7 0d 40 49 |......@.|.I....@I|
|00000380| 88 0d 40 14 0d 41 89 15 | ac 6b 0c c7 0b 49 88 0b |..@..A..|.k...I..|
|00000390| c6 0c 49 2a 87 22 20 5b | 64 6c 6c 2d 63 6c 65 61 |..I*." [|dll-clea|
|000003a0| 72 20 64 6c 6c 20 64 6c | 6c 2d 67 65 74 2d 64 75 |r dll dl|l-get-du|
|000003b0| 6d 6d 79 2d 6e 6f 64 65 | 20 64 75 6d 6d 79 20 6c |mmy-node| dummy l|
|000003c0| 65 66 74 20 6c 69 73 74 | 20 30 20 31 5d 20 34 5d |eft list| 0 1] 4]|
|000003d0| 29 0a 23 40 37 32 20 47 | 65 74 20 74 68 65 20 65 |).#@72 G|et the e|
|000003e0| 6c 65 6d 65 6e 74 20 6f | 66 20 61 20 4e 4f 44 45 |lement o|f a NODE|
|000003f0| 20 69 6e 20 61 20 64 6f | 75 62 6c 79 20 6c 69 6e | in a do|ubly lin|
|00000400| 6b 65 64 20 6c 69 73 74 | 20 44 4c 4c 2e 0a 41 72 |ked list| DLL..Ar|
|00000410| 67 73 3a 20 44 4c 4c 20 | 4e 4f 44 45 2e 1f 0a 28 |gs: DLL |NODE...(|
|00000420| 64 65 66 61 6c 69 61 73 | 20 27 64 6c 6c 2d 65 6c |defalias| 'dll-el|
|00000430| 65 6d 65 6e 74 20 27 28 | 6d 61 63 72 6f 20 2e 20 |ement '(|macro . |
|00000440| 23 5b 28 64 6c 6c 20 6e | 6f 64 65 29 20 22 c0 09 |#[(dll n|ode) "..|
|00000450| 44 87 22 20 5b 65 6c 69 | 62 2d 6e 6f 64 65 2d 64 |D." [eli|b-node-d|
|00000460| 61 74 61 20 6e 6f 64 65 | 5d 20 32 20 28 23 24 20 |ata node|] 2 (#$ |
|00000470| 2e 20 39 38 33 29 5d 29 | 29 0a 23 40 33 37 20 43 |. 983)])|).#@37 C|
|00000480| 72 65 61 74 65 20 61 6e | 20 65 6d 70 74 79 20 64 |reate an| empty d|
|00000490| 6f 75 62 6c 79 20 6c 69 | 6e 6b 65 64 20 6c 69 73 |oubly li|nked lis|
|000004a0| 74 2e 1f 0a 28 64 65 66 | 61 6c 69 61 73 20 27 64 |t...(def|alias 'd|
|000004b0| 6c 6c 2d 63 72 65 61 74 | 65 20 23 5b 6e 69 6c 20 |ll-creat|e #[nil |
|000004c0| 22 c0 c1 89 89 23 89 1a | c3 5c 6e 49 88 5c 6e c4 |"....#..|.\nI.\n.|
|000004d0| 5c 6e 49 88 c5 5c 6e 29 | 42 87 22 20 5b 76 65 63 |\nI..\n)|B." [vec|
|000004e0| 74 6f 72 20 6e 69 6c 20 | 64 75 6d 6d 79 2d 6e 6f |tor nil |dummy-no|
|000004f0| 64 65 20 31 20 30 20 44 | 4c 2d 4c 49 53 54 5d 20 |de 1 0 D|L-LIST] |
|00000500| 35 20 28 23 24 20 2e 20 | 31 31 35 31 29 5d 29 0a |5 (#$ . |1151)]).|
|00000510| 23 40 36 37 20 52 65 74 | 75 72 6e 20 74 20 69 66 |#@67 Ret|urn t if|
|00000520| 20 4f 42 4a 45 43 54 20 | 69 73 20 61 20 64 6f 75 | OBJECT |is a dou|
|00000530| 62 6c 79 20 6c 69 6e 6b | 65 64 20 6c 69 73 74 2c |bly link|ed list,|
|00000540| 20 6f 74 68 65 72 77 69 | 73 65 20 72 65 74 75 72 | otherwi|se retur|
|00000550| 6e 20 6e 69 6c 2e 1f 0a | 28 64 65 66 61 6c 69 61 |n nil...|(defalia|
|00000560| 73 20 27 64 6c 6c 2d 70 | 20 23 5b 28 6f 62 6a 65 |s 'dll-p| #[(obje|
|00000570| 63 74 29 20 22 08 a2 c1 | 61 87 22 20 5b 6f 62 6a |ct) "...|a." [obj|
|00000580| 65 63 74 20 44 4c 2d 4c | 49 53 54 5d 20 32 20 28 |ect DL-L|IST] 2 (|
|00000590| 23 24 20 2e 20 31 33 30 | 31 29 5d 29 0a 23 40 36 |#$ . 130|1)]).#@6|
|000005a0| 36 20 41 64 64 20 61 6e | 20 65 6c 65 6d 65 6e 74 |6 Add an| element|
|000005b0| 20 66 69 72 73 74 20 6f | 6e 20 61 20 64 6f 75 62 | first o|n a doub|
|000005c0| 6c 79 20 6c 69 6e 6b 65 | 64 20 6c 69 73 74 2e 0a |ly linke|d list..|
|000005d0| 41 72 67 73 3a 20 44 4c | 4c 20 45 4c 45 4d 45 4e |Args: DL|L ELEMEN|
|000005e0| 54 2e 1f 0a 28 64 65 66 | 61 6c 69 61 73 20 27 64 |T...(def|alias 'd|
|000005f0| 6c 6c 2d 65 6e 74 65 72 | 2d 66 69 72 73 74 20 23 |ll-enter|-first #|
|00000600| 5b 28 64 6c 6c 20 65 6c | 65 6d 65 6e 74 29 20 22 |[(dll el|ement) "|
|00000610| c0 09 c2 09 21 0b 23 87 | 22 20 5b 64 6c 6c 2d 65 |....!.#.|" [dll-e|
|00000620| 6e 74 65 72 2d 61 66 74 | 65 72 20 64 6c 6c 20 64 |nter-aft|er dll d|
|00000630| 6c 6c 2d 67 65 74 2d 64 | 75 6d 6d 79 2d 6e 6f 64 |ll-get-d|ummy-nod|
|00000640| 65 20 65 6c 65 6d 65 6e | 74 5d 20 34 20 28 23 24 |e elemen|t] 4 (#$|
|00000650| 20 2e 20 31 34 34 32 29 | 5d 29 0a 23 40 36 35 20 | . 1442)|]).#@65 |
|00000660| 41 64 64 20 61 6e 20 65 | 6c 65 6d 65 6e 74 20 6c |Add an e|lement l|
|00000670| 61 73 74 20 6f 6e 20 61 | 20 64 6f 75 62 6c 79 20 |ast on a| doubly |
|00000680| 6c 69 6e 6b 65 64 20 6c | 69 73 74 2e 0a 41 72 67 |linked l|ist..Arg|
|00000690| 73 3a 20 44 4c 4c 20 45 | 4c 45 4d 45 4e 54 2e 1f |s: DLL E|LEMENT..|
|000006a0| 0a 28 64 65 66 61 6c 69 | 61 73 20 27 64 6c 6c 2d |.(defali|as 'dll-|
|000006b0| 65 6e 74 65 72 2d 6c 61 | 73 74 20 23 5b 28 64 6c |enter-la|st #[(dl|
|000006c0| 6c 20 65 6c 65 6d 65 6e | 74 29 20 22 c0 09 c2 09 |l elemen|t) "....|
|000006d0| 21 0b 23 87 22 20 5b 64 | 6c 6c 2d 65 6e 74 65 72 |!.#." [d|ll-enter|
|000006e0| 2d 62 65 66 6f 72 65 20 | 64 6c 6c 20 64 6c 6c 2d |-before |dll dll-|
|000006f0| 67 65 74 2d 64 75 6d 6d | 79 2d 6e 6f 64 65 20 65 |get-dumm|y-node e|
|00000700| 6c 65 6d 65 6e 74 5d 20 | 34 20 28 23 24 20 2e 20 |lement] |4 (#$ . |
|00000710| 31 36 33 32 29 5d 29 0a | 23 40 31 30 31 20 49 6e |1632)]).|#@101 In|
|00000720| 20 74 68 65 20 64 6f 75 | 62 6c 79 20 6c 69 6e 6b | the dou|bly link|
|00000730| 65 64 20 6c 69 73 74 20 | 44 4c 4c 2c 20 69 6e 73 |ed list |DLL, ins|
|00000740| 65 72 74 20 61 20 6e 6f | 64 65 20 63 6f 6e 74 61 |ert a no|de conta|
|00000750| 69 6e 69 6e 67 20 45 4c | 45 4d 45 4e 54 20 61 66 |ining EL|EMENT af|
|00000760| 74 65 72 20 4e 4f 44 45 | 2e 0a 41 72 67 73 3a 20 |ter NODE|..Args: |
|00000770| 44 4c 4c 20 4e 4f 44 45 | 20 45 4c 45 4d 45 4e 54 |DLL NODE| ELEMENT|
|00000780| 2e 1f 0a 28 64 65 66 61 | 6c 69 61 73 20 27 64 6c |...(defa|lias 'dl|
|00000790| 6c 2d 65 6e 74 65 72 2d | 61 66 74 65 72 20 23 5b |l-enter-|after #[|
|000007a0| 28 64 6c 6c 20 6e 6f 64 | 65 20 65 6c 65 6d 65 6e |(dll nod|e elemen|
|000007b0| 74 29 20 22 c0 09 89 c2 | 48 0b 23 1c 09 c2 48 c5 |t) "....|H.#...H.|
|000007c0| 0c 49 88 09 c2 0c 49 29 | 87 22 20 5b 76 65 63 74 |.I....I)|." [vect|
|000007d0| 6f 72 20 6e 6f 64 65 20 | 31 20 65 6c 65 6d 65 6e |or node |1 elemen|
|000007e0| 74 20 6e 65 77 2d 6e 6f | 64 65 20 30 5d 20 34 20 |t new-no|de 0] 4 |
|000007f0| 28 23 24 20 2e 20 31 38 | 32 32 29 5d 29 0a 23 40 |(#$ . 18|22)]).#@|
|00000800| 31 30 32 20 49 6e 20 74 | 68 65 20 64 6f 75 62 6c |102 In t|he doubl|
|00000810| 79 20 6c 69 6e 6b 65 64 | 20 6c 69 73 74 20 44 4c |y linked| list DL|
|00000820| 4c 2c 20 69 6e 73 65 72 | 74 20 61 20 6e 6f 64 65 |L, inser|t a node|
|00000830| 20 63 6f 6e 74 61 69 6e | 69 6e 67 20 45 4c 45 4d | contain|ing ELEM|
|00000840| 45 4e 54 20 62 65 66 6f | 72 65 20 4e 4f 44 45 2e |ENT befo|re NODE.|
|00000850| 0a 41 72 67 73 3a 20 44 | 4c 4c 20 4e 4f 44 45 20 |.Args: D|LL NODE |
|00000860| 45 4c 45 4d 45 4e 54 2e | 1f 0a 28 64 65 66 61 6c |ELEMENT.|..(defal|
|00000870| 69 61 73 20 27 64 6c 6c | 2d 65 6e 74 65 72 2d 62 |ias 'dll|-enter-b|
|00000880| 65 66 6f 72 65 20 23 5b | 28 64 6c 6c 20 6e 6f 64 |efore #[|(dll nod|
|00000890| 65 20 65 6c 65 6d 65 6e | 74 29 20 22 c0 09 c2 48 |e elemen|t) "...H|
|000008a0| 09 0b 23 1c 09 c2 48 c5 | 0c 49 88 09 c2 0c 49 29 |..#...H.|.I....I)|
|000008b0| 87 22 20 5b 76 65 63 74 | 6f 72 20 6e 6f 64 65 20 |." [vect|or node |
|000008c0| 30 20 65 6c 65 6d 65 6e | 74 20 6e 65 77 2d 6e 6f |0 elemen|t new-no|
|000008d0| 64 65 20 31 5d 20 34 20 | 28 23 24 20 2e 20 32 30 |de 1] 4 |(#$ . 20|
|000008e0| 35 32 29 5d 29 0a 23 40 | 37 38 20 52 65 74 75 72 |52)]).#@|78 Retur|
|000008f0| 6e 20 74 68 65 20 6e 6f | 64 65 20 61 66 74 65 72 |n the no|de after|
|00000900| 20 4e 4f 44 45 2c 20 6f | 72 20 6e 69 6c 20 69 66 | NODE, o|r nil if|
|00000910| 20 4e 4f 44 45 20 69 73 | 20 74 68 65 20 6c 61 73 | NODE is| the las|
|00000920| 74 20 6e 6f 64 65 2e 0a | 41 72 67 73 3a 20 44 4c |t node..|Args: DL|
|00000930| 4c 20 4e 4f 44 45 2e 1f | 0a 28 64 65 66 61 6c 69 |L NODE..|.(defali|
|00000940| 61 73 20 27 64 6c 6c 2d | 6e 65 78 74 20 23 5b 28 |as 'dll-|next #[(|
|00000950| 64 6c 6c 20 6e 6f 64 65 | 29 20 22 08 c1 48 c2 0b |dll node|) "..H..|
|00000960| 21 61 3f ad 83 08 c1 48 | 87 22 20 5b 6e 6f 64 65 |!a?....H|." [node|
|00000970| 20 31 20 64 6c 6c 2d 67 | 65 74 2d 64 75 6d 6d 79 | 1 dll-g|et-dummy|
|00000980| 2d 6e 6f 64 65 20 64 6c | 6c 5d 20 33 20 28 23 24 |-node dl|l] 3 (#$|
|00000990| 20 2e 20 32 32 38 33 29 | 5d 29 0a 23 40 38 30 20 | . 2283)|]).#@80 |
|000009a0| 52 65 74 75 72 6e 20 74 | 68 65 20 6e 6f 64 65 20 |Return t|he node |
|000009b0| 62 65 66 6f 72 65 20 4e | 4f 44 45 2c 20 6f 72 20 |before N|ODE, or |
|000009c0| 6e 69 6c 20 69 66 20 4e | 4f 44 45 20 69 73 20 74 |nil if N|ODE is t|
|000009d0| 68 65 20 66 69 72 73 74 | 20 6e 6f 64 65 2e 0a 41 |he first| node..A|
|000009e0| 72 67 73 3a 20 44 4c 4c | 20 4e 4f 44 45 2e 1f 0a |rgs: DLL| NODE...|
|000009f0| 28 64 65 66 61 6c 69 61 | 73 20 27 64 6c 6c 2d 70 |(defalia|s 'dll-p|
|00000a00| 72 65 76 69 6f 75 73 20 | 23 5b 28 64 6c 6c 20 6e |revious |#[(dll n|
|00000a10| 6f 64 65 29 20 22 08 c1 | 48 c2 0b 21 61 3f ad 83 |ode) "..|H..!a?..|
|00000a20| 08 c1 48 87 22 20 5b 6e | 6f 64 65 20 30 20 64 6c |..H." [n|ode 0 dl|
|00000a30| 6c 2d 67 65 74 2d 64 75 | 6d 6d 79 2d 6e 6f 64 65 |l-get-du|mmy-node|
|00000a40| 20 64 6c 6c 5d 20 33 20 | 28 23 24 20 2e 20 32 34 | dll] 3 |(#$ . 24|
|00000a50| 36 34 29 5d 29 0a 23 40 | 39 30 20 44 65 6c 65 74 |64)]).#@|90 Delet|
|00000a60| 65 20 4e 4f 44 45 20 66 | 72 6f 6d 20 74 68 65 20 |e NODE f|rom the |
|00000a70| 64 6f 75 62 6c 79 20 6c | 69 6e 6b 65 64 20 6c 69 |doubly l|inked li|
|00000a80| 73 74 20 44 4c 4c 2e 0a | 41 72 67 73 3a 20 44 4c |st DLL..|Args: DL|
|00000a90| 4c 20 4e 4f 44 45 2e 20 | 52 65 74 75 72 6e 20 74 |L NODE. |Return t|
|00000aa0| 68 65 20 65 6c 65 6d 65 | 6e 74 20 6f 66 20 6e 6f |he eleme|nt of no|
|00000ab0| 64 65 2e 1f 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |de...(de|falias '|
|00000ac0| 64 6c 6c 2d 64 65 6c 65 | 74 65 20 23 5b 28 64 6c |dll-dele|te #[(dl|
|00000ad0| 6c 20 6e 6f 64 65 29 20 | 22 08 c1 48 c2 08 c2 48 |l node) |"..H...H|
|00000ae0| 49 88 08 c2 48 c1 08 c1 | 48 49 88 08 c3 48 87 22 |I...H...|HI...H."|
|00000af0| 20 5b 6e 6f 64 65 20 30 | 20 31 20 32 5d 20 34 20 | [node 0| 1 2] 4 |
|00000b00| 28 23 24 20 2e 20 32 36 | 35 31 29 5d 29 0a 23 40 |(#$ . 26|51)]).#@|
|00000b10| 31 32 31 20 44 65 6c 65 | 74 65 20 74 68 65 20 66 |121 Dele|te the f|
|00000b20| 69 72 73 74 20 4e 4f 44 | 45 20 66 72 6f 6d 20 74 |irst NOD|E from t|
|00000b30| 68 65 20 64 6f 75 62 6c | 79 20 6c 69 6e 6b 65 64 |he doubl|y linked|
|00000b40| 20 6c 69 73 74 20 44 4c | 4c 2e 0a 52 65 74 75 72 | list DL|L..Retur|
|00000b50| 6e 20 74 68 65 20 65 6c | 65 6d 65 6e 74 2e 20 41 |n the el|ement. A|
|00000b60| 72 67 73 3a 20 44 4c 4c | 2e 20 52 65 74 75 72 6e |rgs: DLL|. Return|
|00000b70| 73 20 6e 69 6c 20 69 66 | 20 74 68 65 20 44 4c 4c |s nil if| the DLL|
|00000b80| 20 77 61 73 20 65 6d 70 | 74 79 2e 1f 0a 28 64 65 | was emp|ty...(de|
|00000b90| 66 61 6c 69 61 73 20 27 | 64 6c 6c 2d 64 65 6c 65 |falias '|dll-dele|
|00000ba0| 74 65 2d 66 69 72 73 74 | 20 23 5b 28 64 6c 6c 29 |te-first| #[(dll)|
|00000bb0| 20 22 c0 09 c2 09 21 c3 | 48 5c 22 87 22 20 5b 64 | "....!.|H\"." [d|
|00000bc0| 6c 6c 2d 64 65 6c 65 74 | 65 20 64 6c 6c 20 64 6c |ll-delet|e dll dl|
|00000bd0| 6c 2d 67 65 74 2d 64 75 | 6d 6d 79 2d 6e 6f 64 65 |l-get-du|mmy-node|
|00000be0| 20 31 5d 20 34 20 28 23 | 24 20 2e 20 32 38 33 36 | 1] 4 (#|$ . 2836|
|00000bf0| 29 5d 29 0a 23 40 31 32 | 30 20 44 65 6c 65 74 65 |)]).#@12|0 Delete|
|00000c00| 20 74 68 65 20 6c 61 73 | 74 20 4e 4f 44 45 20 66 | the las|t NODE f|
|00000c10| 72 6f 6d 20 74 68 65 20 | 64 6f 75 62 6c 79 20 6c |rom the |doubly l|
|00000c20| 69 6e 6b 65 64 20 6c 69 | 73 74 20 44 4c 4c 2e 0a |inked li|st DLL..|
|00000c30| 52 65 74 75 72 6e 20 74 | 68 65 20 65 6c 65 6d 65 |Return t|he eleme|
|00000c40| 6e 74 2e 20 41 72 67 73 | 3a 20 44 4c 4c 2e 20 52 |nt. Args|: DLL. R|
|00000c50| 65 74 75 72 6e 73 20 6e | 69 6c 20 69 66 20 74 68 |eturns n|il if th|
|00000c60| 65 20 44 4c 4c 20 77 61 | 73 20 65 6d 70 74 79 2e |e DLL wa|s empty.|
|00000c70| 1f 0a 28 64 65 66 61 6c | 69 61 73 20 27 64 6c 6c |..(defal|ias 'dll|
|00000c80| 2d 64 65 6c 65 74 65 2d | 6c 61 73 74 20 23 5b 28 |-delete-|last #[(|
|00000c90| 64 6c 6c 29 20 22 c0 09 | c2 09 21 c3 48 5c 22 87 |dll) "..|..!.H\".|
|00000ca0| 22 20 5b 64 6c 6c 2d 64 | 65 6c 65 74 65 20 64 6c |" [dll-d|elete dl|
|00000cb0| 6c 20 64 6c 6c 2d 67 65 | 74 2d 64 75 6d 6d 79 2d |l dll-ge|t-dummy-|
|00000cc0| 6e 6f 64 65 20 30 5d 20 | 34 20 28 23 24 20 2e 20 |node 0] |4 (#$ . |
|00000cd0| 33 30 36 36 29 5d 29 0a | 23 40 31 31 38 20 52 65 |3066)]).|#@118 Re|
|00000ce0| 74 75 72 6e 20 74 68 65 | 20 66 69 72 73 74 20 65 |turn the| first e|
|00000cf0| 6c 65 6d 65 6e 74 20 6f | 6e 20 74 68 65 20 64 6f |lement o|n the do|
|00000d00| 75 62 6c 79 20 6c 69 6e | 6b 65 64 20 6c 69 73 74 |ubly lin|ked list|
|00000d10| 20 44 4c 4c 2e 0a 52 65 | 74 75 72 6e 20 6e 69 6c | DLL..Re|turn nil|
|00000d20| 20 69 66 20 74 68 65 20 | 6c 69 73 74 20 69 73 20 | if the |list is |
|00000d30| 65 6d 70 74 79 2e 20 54 | 68 65 20 65 6c 65 6d 65 |empty. T|he eleme|
|00000d40| 6e 74 20 69 73 20 6e 6f | 74 20 72 65 6d 6f 76 65 |nt is no|t remove|
|00000d50| 64 2e 1f 0a 28 64 65 66 | 61 6c 69 61 73 20 27 64 |d...(def|alias 'd|
|00000d60| 6c 6c 2d 66 69 72 73 74 | 20 23 5b 28 64 6c 6c 29 |ll-first| #[(dll)|
|00000d70| 20 22 c0 09 21 c2 48 c0 | 09 21 61 3f ad 87 c0 09 | "..!.H.|.!a?....|
|00000d80| 21 c2 48 c3 48 87 22 20 | 5b 64 6c 6c 2d 67 65 74 |!.H.H." |[dll-get|
|00000d90| 2d 64 75 6d 6d 79 2d 6e | 6f 64 65 20 64 6c 6c 20 |-dummy-n|ode dll |
|00000da0| 31 20 32 5d 20 33 20 28 | 23 24 20 2e 20 33 32 39 |1 2] 3 (|#$ . 329|
|00000db0| 34 29 5d 29 0a 23 40 31 | 31 37 20 52 65 74 75 72 |4)]).#@1|17 Retur|
|00000dc0| 6e 20 74 68 65 20 6c 61 | 73 74 20 65 6c 65 6d 65 |n the la|st eleme|
|00000dd0| 6e 74 20 6f 6e 20 74 68 | 65 20 64 6f 75 62 6c 79 |nt on th|e doubly|
|00000de0| 20 6c 69 6e 6b 65 64 20 | 6c 69 73 74 20 44 4c 4c | linked |list DLL|
|00000df0| 2e 0a 52 65 74 75 72 6e | 20 6e 69 6c 20 69 66 20 |..Return| nil if |
|00000e00| 74 68 65 20 6c 69 73 74 | 20 69 73 20 65 6d 70 74 |the list| is empt|
|00000e10| 79 2e 20 54 68 65 20 65 | 6c 65 6d 65 6e 74 20 69 |y. The e|lement i|
|00000e20| 73 20 6e 6f 74 20 72 65 | 6d 6f 76 65 64 2e 1f 0a |s not re|moved...|
|00000e30| 28 64 65 66 61 6c 69 61 | 73 20 27 64 6c 6c 2d 6c |(defalia|s 'dll-l|
|00000e40| 61 73 74 20 23 5b 28 64 | 6c 6c 29 20 22 c0 09 21 |ast #[(d|ll) "..!|
|00000e50| c2 48 c0 09 21 61 3f ad | 87 c0 09 21 c2 48 c3 48 |.H..!a?.|...!.H.H|
|00000e60| 87 22 20 5b 64 6c 6c 2d | 67 65 74 2d 64 75 6d 6d |." [dll-|get-dumm|
|00000e70| 79 2d 6e 6f 64 65 20 64 | 6c 6c 20 30 20 32 5d 20 |y-node d|ll 0 2] |
|00000e80| 33 20 28 23 24 20 2e 20 | 33 35 31 35 29 5d 29 0a |3 (#$ . |3515)]).|
|00000e90| 23 40 32 37 31 20 52 65 | 74 75 72 6e 20 74 68 65 |#@271 Re|turn the|
|00000ea0| 20 4e 74 68 20 6e 6f 64 | 65 20 66 72 6f 6d 20 74 | Nth nod|e from t|
|00000eb0| 68 65 20 64 6f 75 62 6c | 79 20 6c 69 6e 6b 65 64 |he doubl|y linked|
|00000ec0| 20 6c 69 73 74 20 44 4c | 4c 2e 0a 20 41 72 67 73 | list DL|L.. Args|
|00000ed0| 3a 20 44 4c 4c 20 4e 0a | 4e 20 63 6f 75 6e 74 73 |: DLL N.|N counts|
|00000ee0| 20 66 72 6f 6d 20 7a 65 | 72 6f 2e 20 49 66 20 44 | from ze|ro. If D|
|00000ef0| 4c 4c 20 69 73 20 6e 6f | 74 20 74 68 61 74 20 6c |LL is no|t that l|
|00000f00| 6f 6e 67 2c 20 6e 69 6c | 20 69 73 20 72 65 74 75 |ong, nil| is retu|
|00000f10| 72 6e 65 64 2e 0a 49 66 | 20 4e 20 69 73 20 6e 65 |rned..If| N is ne|
|00000f20| 67 61 74 69 76 65 2c 20 | 72 65 74 75 72 6e 20 74 |gative, |return t|
|00000f30| 68 65 20 2d 28 4e 2b 31 | 29 74 68 20 6c 61 73 74 |he -(N+1|)th last|
|00000f40| 20 65 6c 65 6d 65 6e 74 | 2e 0a 54 68 75 73 2c 20 | element|..Thus, |
|00000f50| 28 64 6c 6c 2d 6e 74 68 | 20 64 6c 6c 20 30 29 20 |(dll-nth| dll 0) |
|00000f60| 72 65 74 75 72 6e 73 20 | 74 68 65 20 66 69 72 73 |returns |the firs|
|00000f70| 74 20 6e 6f 64 65 2c 0a | 61 6e 64 20 28 64 6c 6c |t node,.|and (dll|
|00000f80| 2d 6e 74 68 20 64 6c 6c | 20 2d 31 29 20 72 65 74 |-nth dll| -1) ret|
|00000f90| 75 72 6e 73 20 74 68 65 | 20 6c 61 73 74 20 6e 6f |urns the| last no|
|00000fa0| 64 65 2e 1f 0a 28 64 65 | 66 61 6c 69 61 73 20 27 |de...(de|falias '|
|00000fb0| 64 6c 6c 2d 6e 74 68 20 | 23 5b 28 64 6c 6c 20 6e |dll-nth |#[(dll n|
|00000fc0| 29 20 22 c0 09 21 1a 0b | c4 57 ab 83 c4 aa 81 c5 |) "..!..|.W......|
|00000fd0| 1e 06 5c 6e 0e 06 48 1e | 07 0b c4 57 ab 84 c8 0b |..\n..H.|...W....|
|00000fe0| 5a 13 5c 6e 0e 07 61 ac | 91 0b c4 56 ab 8c 0e 07 |Z.\n..a.|...V....|
|00000ff0| 0e 06 48 16 07 0b 53 13 | aa 69 5c 6e 0e 07 61 3f |..H...S.|.i\n..a?|
|00001000| ad 82 0e 07 2b 87 22 20 | 5b 64 6c 6c 2d 67 65 74 |....+." |[dll-get|
|00001010| 2d 64 75 6d 6d 79 2d 6e | 6f 64 65 20 64 6c 6c 20 |-dummy-n|ode dll |
|00001020| 64 75 6d 6d 79 20 6e 20 | 30 20 31 20 62 72 61 6e |dummy n |0 1 bran|
|00001030| 63 68 20 6e 6f 64 65 20 | 2d 31 5d 20 32 20 28 23 |ch node |-1] 2 (#|
|00001040| 24 20 2e 20 33 37 33 34 | 29 5d 29 0a 23 40 36 34 |$ . 3734|)]).#@64|
|00001050| 20 52 65 74 75 72 6e 20 | 74 20 69 66 20 74 68 65 | Return |t if the|
|00001060| 20 64 6f 75 62 6c 79 20 | 6c 69 6e 6b 65 64 20 6c | doubly |linked l|
|00001070| 69 73 74 20 44 4c 4c 20 | 69 73 20 65 6d 70 74 79 |ist DLL |is empty|
|00001080| 2c 20 6e 69 6c 20 6f 74 | 68 65 72 77 69 73 65 1f |, nil ot|herwise.|
|00001090| 0a 28 64 65 66 61 6c 69 | 61 73 20 27 64 6c 6c 2d |.(defali|as 'dll-|
|000010a0| 65 6d 70 74 79 20 23 5b | 28 64 6c 6c 29 20 22 c0 |empty #[|(dll) ".|
|000010b0| 09 21 c2 48 c0 09 21 61 | 87 22 20 5b 64 6c 6c 2d |.!.H..!a|." [dll-|
|000010c0| 67 65 74 2d 64 75 6d 6d | 79 2d 6e 6f 64 65 20 64 |get-dumm|y-node d|
|000010d0| 6c 6c 20 30 5d 20 33 20 | 28 23 24 20 2e 20 34 31 |ll 0] 3 |(#$ . 41|
|000010e0| 37 37 29 5d 29 0a 23 40 | 36 33 20 52 65 74 75 72 |77)]).#@|63 Retur|
|000010f0| 6e 73 20 74 68 65 20 6e | 75 6d 62 65 72 20 6f 66 |ns the n|umber of|
|00001100| 20 65 6c 65 6d 65 6e 74 | 73 20 69 6e 20 74 68 65 | element|s in the|
|00001110| 20 64 6f 75 62 6c 79 20 | 6c 69 6e 6b 65 64 20 6c | doubly |linked l|
|00001120| 69 73 74 20 44 4c 4c 2e | 1f 0a 28 64 65 66 61 6c |ist DLL.|..(defal|
|00001130| 69 61 73 20 27 64 6c 6c | 2d 6c 65 6e 67 74 68 20 |ias 'dll|-length |
|00001140| 23 5b 28 64 6c 6c 29 20 | 22 c0 09 21 89 1a c3 48 |#[(dll) |"..!...H|
|00001150| 1c c5 1e 06 0c 5c 6e 61 | ac 8b 0c c3 48 14 0e 06 |.....\na|....H...|
|00001160| 54 16 06 aa 70 0e 06 2b | 87 22 20 5b 64 6c 6c 2d |T...p..+|." [dll-|
|00001170| 67 65 74 2d 64 75 6d 6d | 79 2d 6e 6f 64 65 20 64 |get-dumm|y-node d|
|00001180| 6c 6c 20 64 75 6d 6d 79 | 20 31 20 6e 6f 64 65 20 |ll dummy| 1 node |
|00001190| 30 20 6e 5d 20 33 20 28 | 23 24 20 2e 20 34 33 33 |0 n] 3 (|#$ . 433|
|000011a0| 31 29 5d 29 0a 23 40 32 | 35 31 20 52 65 74 75 72 |1)]).#@2|51 Retur|
|000011b0| 6e 20 61 20 63 6f 70 79 | 20 6f 66 20 74 68 65 20 |n a copy| of the |
|000011c0| 64 6f 75 62 6c 79 20 6c | 69 6e 6b 65 64 20 6c 69 |doubly l|inked li|
|000011d0| 73 74 20 44 4c 4c 2e 0a | 49 66 20 6f 70 74 69 6f |st DLL..|If optio|
|000011e0| 6e 61 6c 20 73 65 63 6f | 6e 64 20 61 72 67 75 6d |nal seco|nd argum|
|000011f0| 65 6e 74 20 45 4c 45 4d | 45 4e 54 2d 43 4f 50 59 |ent ELEM|ENT-COPY|
|00001200| 2d 46 4e 43 20 69 73 20 | 6e 6f 6e 2d 6e 69 6c 20 |-FNC is |non-nil |
|00001210| 69 74 20 73 68 6f 75 6c | 64 20 62 65 0a 61 20 66 |it shoul|d be.a f|
|00001220| 75 6e 63 74 69 6f 6e 20 | 74 68 61 74 20 74 61 6b |unction |that tak|
|00001230| 65 73 20 6f 6e 65 20 61 | 72 67 75 6d 65 6e 74 2c |es one a|rgument,|
|00001240| 20 61 6e 20 65 6c 65 6d | 65 6e 74 2c 20 61 6e 64 | an elem|ent, and|
|00001250| 20 72 65 74 75 72 6e 73 | 20 61 20 63 6f 70 79 20 | returns| a copy |
|00001260| 6f 66 20 69 74 2e 0a 49 | 66 20 45 4c 45 4d 45 4e |of it..I|f ELEMEN|
|00001270| 54 2d 43 4f 50 59 2d 46 | 4e 43 20 69 73 20 6e 6f |T-COPY-F|NC is no|
|00001280| 74 20 67 69 76 65 6e 20 | 74 68 65 20 65 6c 65 6d |t given |the elem|
|00001290| 65 6e 74 73 20 61 72 65 | 20 6e 6f 74 20 63 6f 70 |ents are| not cop|
|000012a0| 69 65 64 2e 1f 0a 28 64 | 65 66 61 6c 69 61 73 20 |ied...(d|efalias |
|000012b0| 27 64 6c 6c 2d 63 6f 70 | 79 20 23 5b 28 64 6c 6c |'dll-cop|y #[(dll|
|000012c0| 20 26 6f 70 74 69 6f 6e | 61 6c 20 65 6c 65 6d 65 | &option|al eleme|
|000012d0| 6e 74 2d 63 6f 70 79 2d | 66 6e 63 29 20 22 c0 20 |nt-copy-|fnc) ". |
|000012e0| c1 5c 6e c3 5c 22 1c 1d | 0e 06 ab 95 0c ab a4 c7 |.\n.\"..|........|
|000012f0| 0d 0e 06 0c c8 48 21 5c | 22 88 c9 5c 6e 0c 5c 22 |.....H!\|"..\n.\"|
|00001300| 89 14 aa 6c 0c ab 8f c7 | 0d 0c c8 48 5c 22 88 c9 |...l....|...H\"..|
|00001310| 5c 6e 0c 5c 22 89 14 ac | 71 0d 2a 87 22 20 5b 64 |\n.\"...|q.*." [d|
|00001320| 6c 6c 2d 63 72 65 61 74 | 65 20 64 6c 6c 2d 6e 74 |ll-creat|e dll-nt|
|00001330| 68 20 64 6c 6c 20 30 20 | 6e 6f 64 65 20 72 65 73 |h dll 0 |node res|
|00001340| 75 6c 74 20 65 6c 65 6d | 65 6e 74 2d 63 6f 70 79 |ult elem|ent-copy|
|00001350| 2d 66 6e 63 20 64 6c 6c | 2d 65 6e 74 65 72 2d 6c |-fnc dll|-enter-l|
|00001360| 61 73 74 20 32 20 64 6c | 6c 2d 6e 65 78 74 5d 20 |ast 2 dl|l-next] |
|00001370| 36 20 28 23 24 20 2e 20 | 34 35 32 33 29 5d 29 0a |6 (#$ . |4523)]).|
|00001380| 23 40 37 32 20 52 65 74 | 75 72 6e 20 61 6c 6c 20 |#@72 Ret|urn all |
|00001390| 65 6c 65 6d 65 6e 74 73 | 20 6f 6e 20 74 68 65 20 |elements| on the |
|000013a0| 64 6f 75 62 6c 65 20 6c | 69 6e 6b 65 64 20 6c 69 |double l|inked li|
|000013b0| 73 74 20 44 4c 4c 20 61 | 73 20 61 6e 20 6f 72 64 |st DLL a|s an ord|
|000013c0| 69 6e 61 72 79 20 6c 69 | 73 74 2e 1f 0a 28 64 65 |inary li|st...(de|
|000013d0| 66 61 6c 69 61 73 20 27 | 64 6c 6c 2d 61 6c 6c 20 |falias '|dll-all |
|000013e0| 23 5b 28 64 6c 6c 29 20 | 22 c0 19 c2 0b 21 89 1c |#[(dll) |"....!..|
|000013f0| c5 48 89 1e 06 0c 61 ac | 90 0e 06 c7 48 09 42 11 |.H....a.|....H.B.|
|00001400| 0e 06 c5 48 89 16 06 aa | 6c 09 2b 87 22 20 5b 6e |...H....|l.+." [n|
|00001410| 69 6c 20 72 65 73 75 6c | 74 20 64 6c 6c 2d 67 65 |il resul|t dll-ge|
|00001420| 74 2d 64 75 6d 6d 79 2d | 6e 6f 64 65 20 64 6c 6c |t-dummy-|node dll|
|00001430| 20 64 75 6d 6d 79 20 30 | 20 6e 6f 64 65 20 32 5d | dummy 0| node 2]|
|00001440| 20 33 20 28 23 24 20 2e | 20 34 39 39 37 29 5d 29 | 3 (#$ .| 4997)])|
|00001450| 0a 23 40 36 36 20 43 6c | 65 61 72 20 74 68 65 20 |.#@66 Cl|ear the |
|00001460| 64 6f 75 62 6c 79 20 6c | 69 6e 6b 65 64 20 6c 69 |doubly l|inked li|
|00001470| 73 74 20 44 4c 4c 2c 20 | 69 2e 65 2e 20 6d 61 6b |st DLL, |i.e. mak|
|00001480| 65 20 69 74 20 63 6f 6d | 70 6c 65 74 65 6c 79 20 |e it com|pletely |
|00001490| 65 6d 70 74 79 2e 1f 0a | 28 64 65 66 61 6c 69 61 |empty...|(defalia|
|000014a0| 73 20 27 64 6c 6c 2d 63 | 6c 65 61 72 20 23 5b 28 |s 'dll-c|lear #[(|
|000014b0| 64 6c 6c 29 20 22 c0 09 | 21 c2 c0 09 21 49 88 c0 |dll) "..|!...!I..|
|000014c0| 09 21 c3 c0 09 21 49 87 | 22 20 5b 64 6c 6c 2d 67 |.!...!I.|" [dll-g|
|000014d0| 65 74 2d 64 75 6d 6d 79 | 2d 6e 6f 64 65 20 64 6c |et-dummy|-node dl|
|000014e0| 6c 20 30 20 31 5d 20 34 | 20 28 23 24 20 2e 20 35 |l 0 1] 4| (#$ . 5|
|000014f0| 32 30 36 29 5d 29 0a 23 | 40 31 31 39 20 41 70 70 |206)]).#|@119 App|
|00001500| 6c 79 20 4d 41 50 2d 46 | 55 4e 43 54 49 4f 4e 20 |ly MAP-F|UNCTION |
|00001510| 74 6f 20 61 6c 6c 20 65 | 6c 65 6d 65 6e 74 73 20 |to all e|lements |
|00001520| 69 6e 20 74 68 65 20 64 | 6f 75 62 6c 79 20 6c 69 |in the d|oubly li|
|00001530| 6e 6b 65 64 20 6c 69 73 | 74 20 44 4c 4c 2e 0a 54 |nked lis|t DLL..T|
|00001540| 68 65 20 66 75 6e 63 74 | 69 6f 6e 20 69 73 20 61 |he funct|ion is a|
|00001550| 70 70 6c 69 65 64 20 74 | 6f 20 74 68 65 20 66 69 |pplied t|o the fi|
|00001560| 72 73 74 20 65 6c 65 6d | 65 6e 74 20 66 69 72 73 |rst elem|ent firs|
|00001570| 74 2e 1f 0a 28 64 65 66 | 61 6c 69 61 73 20 27 64 |t...(def|alias 'd|
|00001580| 6c 6c 2d 6d 61 70 20 23 | 5b 28 6d 61 70 2d 66 75 |ll-map #|[(map-fu|
|00001590| 6e 63 74 69 6f 6e 20 64 | 6c 6c 29 20 22 c0 09 21 |nction d|ll) "..!|
|000015a0| 89 1a c3 48 89 1c 5c 6e | 61 3f ad 8d 0d 0c c6 48 |...H..\n|a?.....H|
|000015b0| 21 88 0c c3 48 89 14 aa | 6e 2a 87 22 20 5b 64 6c |!...H...|n*." [dl|
|000015c0| 6c 2d 67 65 74 2d 64 75 | 6d 6d 79 2d 6e 6f 64 65 |l-get-du|mmy-node|
|000015d0| 20 64 6c 6c 20 64 75 6d | 6d 79 20 31 20 6e 6f 64 | dll dum|my 1 nod|
|000015e0| 65 20 6d 61 70 2d 66 75 | 6e 63 74 69 6f 6e 20 32 |e map-fu|nction 2|
|000015f0| 5d 20 34 20 28 23 24 20 | 2e 20 35 33 37 33 29 5d |] 4 (#$ |. 5373)]|
|00001600| 29 0a 23 40 31 31 38 20 | 41 70 70 6c 79 20 4d 41 |).#@118 |Apply MA|
|00001610| 50 2d 46 55 4e 43 54 49 | 4f 4e 20 74 6f 20 61 6c |P-FUNCTI|ON to al|
|00001620| 6c 20 65 6c 65 6d 65 6e | 74 73 20 69 6e 20 74 68 |l elemen|ts in th|
|00001630| 65 20 64 6f 75 62 6c 79 | 20 6c 69 6e 6b 65 64 20 |e doubly| linked |
|00001640| 6c 69 73 74 20 44 4c 4c | 2e 0a 54 68 65 20 66 75 |list DLL|..The fu|
|00001650| 6e 63 74 69 6f 6e 20 69 | 73 20 61 70 70 6c 69 65 |nction i|s applie|
|00001660| 64 20 74 6f 20 74 68 65 | 20 6c 61 73 74 20 65 6c |d to the| last el|
|00001670| 65 6d 65 6e 74 20 66 69 | 72 73 74 2e 1f 0a 28 64 |ement fi|rst...(d|
|00001680| 65 66 61 6c 69 61 73 20 | 27 64 6c 6c 2d 6d 61 70 |efalias |'dll-map|
|00001690| 2d 72 65 76 65 72 73 65 | 20 23 5b 28 6d 61 70 2d |-reverse| #[(map-|
|000016a0| 66 75 6e 63 74 69 6f 6e | 20 64 6c 6c 29 20 22 c0 |function| dll) ".|
|000016b0| 09 21 89 1a c3 48 89 1c | 5c 6e 61 3f ad 8d 0d 0c |.!...H..|\na?....|
|000016c0| c6 48 21 88 0c c3 48 89 | 14 aa 6e 2a 87 22 20 5b |.H!...H.|..n*." [|
|000016d0| 64 6c 6c 2d 67 65 74 2d | 64 75 6d 6d 79 2d 6e 6f |dll-get-|dummy-no|
|000016e0| 64 65 20 64 6c 6c 20 64 | 75 6d 6d 79 20 30 20 6e |de dll d|ummy 0 n|
|000016f0| 6f 64 65 20 6d 61 70 2d | 66 75 6e 63 74 69 6f 6e |ode map-|function|
|00001700| 20 32 5d 20 34 20 28 23 | 24 20 2e 20 35 36 34 30 | 2] 4 (#|$ . 5640|
|00001710| 29 5d 29 0a 23 40 37 33 | 20 47 69 76 65 6e 20 61 |)]).#@73| Given a|
|00001720| 6e 20 65 6c 69 73 70 20 | 4c 49 53 54 20 63 72 65 |n elisp |LIST cre|
|00001730| 61 74 65 20 61 20 64 6f | 75 62 6c 79 20 6c 69 6e |ate a do|ubly lin|
|00001740| 6b 65 64 20 6c 69 73 74 | 20 77 69 74 68 20 74 68 |ked list| with th|
|00001750| 65 20 73 61 6d 65 20 65 | 6c 65 6d 65 6e 74 73 2e |e same e|lements.|
|00001760| 1f 0a 28 64 65 66 61 6c | 69 61 73 20 27 64 6c 6c |..(defal|ias 'dll|
|00001770| 2d 63 72 65 61 74 65 2d | 66 72 6f 6d 2d 6c 69 73 |-create-|from-lis|
|00001780| 74 20 23 5b 28 6c 69 73 | 74 29 20 22 c0 20 19 5c |t #[(lis|t) ". .\|
|00001790| 6e ab 8c c3 09 5c 6e 40 | 5c 22 88 5c 6e 41 89 12 |n....\n@|\".\nA..|
|000017a0| ac 74 09 29 87 22 20 5b | 64 6c 6c 2d 63 72 65 61 |.t.)." [|dll-crea|
|000017b0| 74 65 20 64 6c 6c 20 6c | 69 73 74 20 64 6c 6c 2d |te dll l|ist dll-|
|000017c0| 65 6e 74 65 72 2d 6c 61 | 73 74 5d 20 34 20 28 23 |enter-la|st] 4 (#|
|000017d0| 24 20 2e 20 35 39 31 33 | 29 5d 29 0a 23 40 32 35 |$ . 5913|)]).#@25|
|000017e0| 30 20 53 6f 72 74 20 74 | 68 65 20 64 6f 75 62 6c |0 Sort t|he doubl|
|000017f0| 79 20 6c 69 6e 6b 65 64 | 20 6c 69 73 74 20 44 4c |y linked| list DL|
|00001800| 4c 2c 20 73 74 61 62 6c | 79 2c 20 63 6f 6d 70 61 |L, stabl|y, compa|
|00001810| 72 69 6e 67 20 65 6c 65 | 6d 65 6e 74 73 20 75 73 |ring ele|ments us|
|00001820| 69 6e 67 20 50 52 45 44 | 49 43 41 54 45 2e 0a 52 |ing PRED|ICATE..R|
|00001830| 65 74 75 72 6e 73 20 74 | 68 65 20 73 6f 72 74 65 |eturns t|he sorte|
|00001840| 64 20 6c 69 73 74 2e 20 | 44 4c 4c 20 69 73 20 6d |d list. |DLL is m|
|00001850| 6f 64 69 66 69 65 64 20 | 62 79 20 73 69 64 65 20 |odified |by side |
|00001860| 65 66 66 65 63 74 73 2e | 0a 50 52 45 44 49 43 41 |effects.|.PREDICA|
|00001870| 54 45 20 69 73 20 63 61 | 6c 6c 65 64 20 77 69 74 |TE is ca|lled wit|
|00001880| 68 20 74 77 6f 20 65 6c | 65 6d 65 6e 74 73 20 6f |h two el|ements o|
|00001890| 66 20 44 4c 4c 2c 20 61 | 6e 64 20 73 68 6f 75 6c |f DLL, a|nd shoul|
|000018a0| 64 20 72 65 74 75 72 6e | 20 54 0a 69 66 20 74 68 |d return| T.if th|
|000018b0| 65 20 66 69 72 73 74 20 | 65 6c 65 6d 65 6e 74 20 |e first |element |
|000018c0| 69 73 20 22 6c 65 73 73 | 22 20 74 68 61 6e 20 74 |is "less|" than t|
|000018d0| 68 65 20 73 65 63 6f 6e | 64 2e 1f 0a 28 64 65 66 |he secon|d...(def|
|000018e0| 61 6c 69 61 73 20 27 64 | 6c 6c 2d 73 6f 72 74 20 |alias 'd|ll-sort |
|000018f0| 23 5b 28 64 6c 6c 20 70 | 72 65 64 69 63 61 74 65 |#[(dll p|redicate|
|00001900| 29 20 22 c0 09 c2 c3 09 | 21 c4 5c 22 5c 22 88 09 |) ".....|!.\"\"..|
|00001910| 87 22 20 5b 64 6c 6c 2d | 73 65 74 2d 66 72 6f 6d |." [dll-|set-from|
|00001920| 2d 6e 6f 64 65 2d 6c 69 | 73 74 20 64 6c 6c 20 73 |-node-li|st dll s|
|00001930| 6f 72 74 20 64 6c 6c 2d | 6c 69 73 74 2d 6e 6f 64 |ort dll-|list-nod|
|00001940| 65 73 20 23 5b 28 78 31 | 20 78 32 29 20 22 08 09 |es #[(x1| x2) "..|
|00001950| c2 48 0b c2 48 5c 22 87 | 22 20 5b 70 72 65 64 69 |.H..H\".|" [predi|
|00001960| 63 61 74 65 20 78 31 20 | 32 20 78 32 5d 20 34 5d |cate x1 |2 x2] 4]|
|00001970| 5d 20 35 20 28 23 24 20 | 2e 20 36 31 31 34 29 5d |] 5 (#$ |. 6114)]|
|00001980| 29 0a 23 40 38 34 20 52 | 65 6d 6f 76 65 20 61 6c |).#@84 R|emove al|
|00001990| 6c 20 65 6c 65 6d 65 6e | 74 73 20 69 6e 20 74 68 |l elemen|ts in th|
|000019a0| 65 20 64 6f 75 62 6c 79 | 20 6c 69 6e 6b 65 64 20 |e doubly| linked |
|000019b0| 6c 69 73 74 20 44 4c 4c | 20 66 6f 72 20 77 68 69 |list DLL| for whi|
|000019c0| 63 68 20 50 52 45 44 49 | 43 41 54 45 0a 72 65 74 |ch PREDI|CATE.ret|
|000019d0| 75 72 6e 73 20 6e 69 6c | 2e 1f 0a 28 64 65 66 61 |urns nil|...(defa|
|000019e0| 6c 69 61 73 20 27 64 6c | 6c 2d 66 69 6c 74 65 72 |lias 'dl|l-filter|
|000019f0| 20 23 5b 28 64 6c 6c 20 | 70 72 65 64 69 63 61 74 | #[(dll |predicat|
|00001a00| 65 29 20 22 c0 09 21 89 | 1a c3 48 1c c5 1e 06 0c |e) "..!.|..H.....|
|00001a10| 5c 6e 61 3f ad 98 0c c3 | 48 16 06 0e 07 0c c8 48 |\na?....|H......H|
|00001a20| 21 ac 85 c9 09 0c 5c 22 | 88 0e 06 89 14 aa 63 2b |!.....\"|......c+|
|00001a30| 87 22 20 5b 64 6c 6c 2d | 67 65 74 2d 64 75 6d 6d |." [dll-|get-dumm|
|00001a40| 79 2d 6e 6f 64 65 20 64 | 6c 6c 20 64 75 6d 6d 79 |y-node d|ll dummy|
|00001a50| 20 31 20 6e 6f 64 65 20 | 6e 69 6c 20 6e 65 78 74 | 1 node |nil next|
|00001a60| 20 70 72 65 64 69 63 61 | 74 65 20 32 20 64 6c 6c | predica|te 2 dll|
|00001a70| 2d 64 65 6c 65 74 65 5d | 20 34 20 28 23 24 20 2e |-delete]| 4 (#$ .|
|00001a80| 20 36 35 33 35 29 5d 29 | 0a | 6535)])|. |
+--------+-------------------------+-------------------------+--------+--------+